// 获取日历显示时间范围
export const getRange = (date) => {
    // 日历第一天
    let firstDay = '';
    // 日历最后一天
    let lastDay = '';
    // 今天
    const today = date ? date : new Date()
    // 上月
    const m = today.getMonth()
    // 本月
    const cm = m + 1
    // 下月
    const lm = m + 2 > 12 ? 1 : m + 2
    // 要显示的本月
    const currentMonth = cm < 10 ? '0' + cm : cm
    // 要显示的本本年
    const currentYear = today.getFullYear()
    // 要显示的上个月的年份，m = 0 则当前1月，上月则是去年12月
    const prevYear = m == 0 ? currentYear - 1 : currentYear
    const prevMonth = m == 0 ? 12 : m < 10 ? '0' + m : m
    // 上个月天数
    const pmd = new Date(prevYear, m, 0).getDate()
    // 下个月的年份，当前12月，则需要加一年
    const lastYear = cm + 1 > 12 ? currentYear + 1 : currentYear
    const lastMonth = lm < 10 ? '0' + lm : lm
    // 1号是周几
    const firstWeek = new Date(today.setDate(1)).getDay()
    // 如果是周日，则不需要显示上个月
    if (firstWeek == 0) {
        firstDay = `${currentYear}-${currentMonth}-01`
    }
    // 其他周几，对应用上个月的天数往前推算
    else {
        firstDay = `${prevYear}-${prevMonth}-${pmd - (firstWeek - 1)}`
    }
    // 这个月天数
    const currentMonthDate = new Date(currentYear, cm, 0).getDate()
    // 最后一天是周几
    const lastWeek = new Date(today.setDate(currentMonthDate)).getDay()
    // 周六显示当月最后一天
    if (lastWeek == 6) {
        lastDay = `${currentYear}-${currentMonth}-${currentMonthDate}`
    }
    // 其他周几，对应往后推算
    else {
        const day = ['06', '05', '04', '03', '02', '01']
        lastDay = `${lastYear}-${lastMonth}-${day[lastWeek]}`
    }

    return {
        firstDay,
        lastDay,
    }
}